# Контроллер предметов

TODO: Переписать

Колнтроллер предметов (`VipM-ItemsController`) отвечает за регистрацию, загрузку и выдачу предметов во всей системе привилегий.

## Структура обьекта предмета

*[Памятка по JSON](/readme/json.md)*

```jsonc
{
    "Type": "<ItemType>",

    "<ParamKey1>": "<ParamValue1>",
    // ...
    "<ParamKeyN>": "<ParamValueN>"
}
```

- `<ItemType>` - название типа предмета, зарегистрированного в контроллере предметов.
- `<ParamKeyX>` - ключ параметра предмета. Список доступных параметров ищите в описании к соответствующему типу предметов.
- `<ParamValueN>` - значение параметра. Значение должно соответствовать типу параметра.

## Для авторов расширений предметов

У предметов нет списка параметров, в отличии от модулей и ограничений. Все параметры читаются руками в событии `OnRead`.

Поле `Name`, при наличии, будет прочитано ДО вызова `OnRead`. Если оно не требуется, можно его удалить из параметров в этом событии (`TrieDeleteKey(Params, "Name")`).

## Использование в сторонних плагинах

Допускается использование контроллера предметов в плагинах, не относящихся к системе привилегий. Для работы контроллера не требуется запущенное ядро системы привилегий.
